desarrollador js. Estoy haciendo una aplicación web express y jade. Ahora estoy tratando de llamar al método de clase en index.router.js desde login.controller.js , he estado buscando una forma de llamar al método sin agregar "type": "module" en paquete.json. Esto se debe a que mi maestro dijo que debería evitar usarlo por ahora. He estado buscando una solución para esto, pero no he descubierto cómo. ¡Gracias por leer!
Aquí está mi código:
//This is index.route.js const express = require('express'); const app = express(); const IndexRouter = express.Router(); const LoginController = require('../controllers/login.controller') IndexRouter.use('/', LoginController.login()) module.exports = IndexRouter //This is login.controller.js module.exports = class LoginController{ async login (req,res) { res.send("Login Page") } }Cree objetos de clase y use objetos de clase para acceder a métodos de clase
En index.route.js
const express = require('express'); const app = express(); const IndexRouter = express.Router(); const LoginController = require('../controllers/login.controller') const loginController = new LoginController(); IndexRouter.use('/', loginController.login()) module.exports = IndexRouterEn login.controller.js
class LoginController { async login(req, res) { res.send("Login Page") } } module.exports = LoginController;por ej.
class LoginController { login(req, res) { console.log("LoginController Login"); } } const loginController = new LoginController(); loginController.login();O puede acceder directamente a la función de inicio de sesión sin usar la clase
En index.route.js
const express = require('express'); const app = express(); const IndexRouter = express.Router(); const { login } = require('../controllers/login.controller') IndexRouter.use('/', login()); // or use('/', login) if using middleware module.exports = IndexRouterEn login.controller.js
async function login(req, res) { res.send("Login Page") } module.exports = { login };